package com.sxj.corejava.code09_集合.List集合;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 石小俊
 * @date 2024年04月24日 13:40
 */
public class Test01_ArrayList {

    public static void main(String[] args) {
//        definedList();
        listMethod();
    }

    public static void definedList() {
        // 创建一个初始容量为10的List集合
        // 此时的集合中没有任何数据,是一个空集合
        // 此时的容量并不是表示元素的数量,而是告诉我们初始空间大小
        // 即:初始空间只能存放10个元素
        ArrayList list = new ArrayList();
        // size():返回集合中元素的数量,不是空间大小
        System.out.println("当前集合中元素的数量:" + list.size());
        list.add(1);
        list.add("admin");
        list.add(true);
        list.add(3.14);
        System.out.println("当前集合中元素的数量:" + list.size());


        // 创建一个指定初始容量的集合
        // 创建集合对象时,可以限制集合中元素的类型
        // 通过泛型来限制的
        ArrayList<String> list2 = new ArrayList<>(2);
        System.out.println("当前集合中元素的数量:" + list2.size());
        list2.add("admin");
        System.out.println("当前集合中元素的数量:" + list2.size());

        // 可以将另一个集合转换成对应的ArrayList集合
        List<Integer> nums = new ArrayList<>();
        nums.add(1);
        nums.add(2);
        nums.add(3);
        ArrayList<Integer> list3 = new ArrayList<>(nums);
        System.out.println(list3);
    }


    public static void listMethod(){
        List<String> list = new ArrayList<>();
        System.out.println("获取元素数量:"+list.size());
        list.add("admin");
        list.add("alice");
        list.add("jack");
        list.add("tom");
        list.add("admin");
        list.add("root");
        list.add("admin");
        list.add("lily");
        System.out.println(list);
        list.add(3,"张三");
        System.out.println(list);
        String result = list.set(3,"李四");
        System.out.println("修改前的元素值:"+result);
        System.out.println(list);
        list.remove("jack");
        System.out.println(list);
        list.remove(2);
        System.out.println(list);

        List<Integer> list2 = new ArrayList<>();
        list2.add(new Integer(3));
        list2.add(6);
        list2.add(5);
        list2.add(10);
        list2.add(2);
        list2.add(1);
        list2.add(2);
        list2.add(4);
        System.out.println(list2);
        list2.remove(2);
        System.out.println(list2);
        list2.remove(new Integer(2));
        System.out.println(list2);

        System.out.println(list.get(2));
        System.out.println("集合是否为空:"+list.isEmpty());

        System.out.println("admin第一次出现的索引:"+list.indexOf("admin"));
        System.out.println("admin最后一次出现的索引:"+list.lastIndexOf("admin"));
        System.out.println("张三第一次出现的索引:"+list.indexOf("张三"));

        System.out.println("集合中是否包含admin:"+list.contains("admin"));
    }
}
